package com.divemotor.ventarepuestosinternet.service.impl;

import java.io.Serializable;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.divemotor.ventarepuestosinternet.beans.adapter.ModeloAdapter;
import com.divemotor.ventarepuestosinternet.dao.ModeloDAO;
import com.divemotor.ventarepuestosinternet.exception.DivemotorBusinessException;
import com.divemotor.ventarepuestosinternet.model.Marca;
import com.divemotor.ventarepuestosinternet.model.Modelo;
import com.divemotor.ventarepuestosinternet.model.TipoVehiculo;
import com.divemotor.ventarepuestosinternet.service.ModeloService;

@Service(value = "modeloService")
@Transactional(rollbackFor=Exception.class)
public class ModeloServiceImpl implements ModeloService, Serializable {

	private static final long serialVersionUID = -3003599464349249284L;
	
	@Autowired
	private ModeloDAO modeloDAO;

	@Override
	public List<Modelo> listarPorMarcaYTipoVehiculo(Modelo modelo) throws DivemotorBusinessException {
		return modeloDAO.listarPorMarcaYTipoVehiculo(modelo);
	}

	@Override
	public List<Modelo> listar() throws DivemotorBusinessException {
		return modeloDAO.listar();
	}

	@Override
	public Modelo obtenerPorId(Modelo modelo) throws DivemotorBusinessException {
		return modeloDAO.obtenerPorId(modelo);
	}

	@Override
	public List<Modelo> listarModelosPorMarcaYTipoVehiculo(Marca marca, TipoVehiculo tipoVehiculo) throws DivemotorBusinessException {
		return modeloDAO.listarModelosPorMarcaYTipoVehiculo(marca,tipoVehiculo);
	}

	@Override
	public List<Modelo> listarModelosPorMarca(String marca) throws DivemotorBusinessException {
		return modeloDAO.listarModelosPorMarca(marca); 
	}

	@Override
	public List<ModeloAdapter> listarComboModelos() {
		return modeloDAO.listarComboModelos(); 
	}

	@Override
	public List<ModeloAdapter> buscarModelosPorMarca(String marcaBusqueda) throws DivemotorBusinessException {
		return modeloDAO.buscarModelosPorMarca(marcaBusqueda); 
	}

}
